package Negocio;

import java.util.List;

import DTO.DTO_Ingrediente;
import DTO.DTO_Receta;
import Entities.Entity_Ingrediente;
import Entities.Entity_Receta;

public abstract class Receta {
	
	protected int idReceta;
	protected String modoPreparacion;
	protected float tiempoElaboracion;
	protected List<Ingrediente> ingredientes;
	protected float cantidad;
	
	//Constructor
	public Receta(int idReceta, String modoPreparacion, float tiempoElaboracion, List<Ingrediente> ingredientes, float cantidad) {
		super();
		this.idReceta = idReceta;
		this.modoPreparacion = modoPreparacion;
		this.tiempoElaboracion = tiempoElaboracion;
		this.ingredientes = ingredientes;
		this.cantidad = cantidad;
	}
	
	public Receta(){
		
	}

	public Receta(DTO_Receta r){
		this.idReceta = r.getIdReceta();
		this.cantidad = r.getCantidad();
		this.modoPreparacion = r.getModoPreparacion();
		this.tiempoElaboracion = r.getTiempoElaboracion();
		for(DTO_Ingrediente i : r.getIngredientes()){
			this.ingredientes.add(new Ingrediente(i));
		}
		
	}
	
	public Receta(Entity_Receta r){
		this.idReceta = r.getIdReceta();
		this.cantidad = r.getCantidad();
		this.modoPreparacion = r.getModoPreparacion();
		this.tiempoElaboracion = r.getTiempoElaboracion();
		for(Entity_Ingrediente i : r.getIngredientes()){
			this.ingredientes.add(new Ingrediente(i));
		}
		
	}
	//GET & List
	
	public int getIdReceta() {
		return idReceta;
	}

	public void setIdReceta(int idReceta) {
		this.idReceta = idReceta;
	}

	public String getModoPreparacion() {
		return modoPreparacion;
	}

	public void setModoPreparacion(String modoPreparacion) {
		this.modoPreparacion = modoPreparacion;
	}

	public float getTiempoElaboracion() {
		return tiempoElaboracion;
	}

	public void setTiempoElaboracion(float tiempoElaboracion) {
		this.tiempoElaboracion = tiempoElaboracion;
	}

	public List<Ingrediente> getIngredientes() {
		return ingredientes;
	}

	public void setIngredientes(List<Ingrediente> ingredientes) {
		this.ingredientes = ingredientes;
	}

	public float getCantidad() {
		return cantidad;
	}

	public void setCantidad(float cantidad) {
		this.cantidad = cantidad;
	}
	
	
	
	
	//METODOS DE NEGOCIO
	public abstract Ingrediente obtenerIngrediente();
	
	

	public abstract DTO_Receta toDTO();

	public abstract Entity_Receta toEntity();
	
}
